﻿<!DOCTYPE html>
<html lang="zh-CN">
<head>
	<title>JCEF帮助文档</title>
	<meta charset="utf-8">
	<meta name="renderer" content="webkit">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
	<a href="javascript:testToJava()">测试与java代码交互</a>
	<br>
	
	<br>
	<a href="javascript:testToJava2()">测试与java代码交互(同步的方式)</a>
	<br><br>
	<a href="javascript:testToJava3()">测试与java代码交互(同步的方式-1)</a>

</body>
<script>

function testToJava(){
	window.java({
	    request: '发送给JAVA的数据',
	    persistent:false,
	    onSuccess: function(response) {
	      alert("返回的数据:"+response);
	    },
	    onFailure: function(error_code, error_message) {}
	});
}

/***
 * 返回一个Promise对象，再利用await，实现js与java交互的同步处理
 */
function execJava(data){
	return new Promise(function(resolve, reject) {
		window.java({
		    request: data,
		    persistent:false,
		    onSuccess: function(response) {
		    	resolve(response);
		    },
		    onFailure: function(error_code, error_message) {}
		});
	});
}

/***
 * 此函数需要使用 async 声明
 */
async function testToJava2(){
	var data=await execJava("发送给JAVA的数据1");
	alert(data+"1");
	var data1=await execJava("发送给JAVA的数据2");
	alert(data+"2");
}


function testToJava3(){
	execJava("发送给JAVA的数据1")
	.then(function(data){
		alert(data+"1");
		return execJava("发送给JAVA的数据2");
	})
	.then(function(data){
		alert(data+"2");
	});
}
</script>
<!-- author:玄翼猫 -->
</html>